Notas de clase: Sistemas Lineales

Table of Contents
Notas de clase: Sistemas Lineales Clase 1: Presentación del curso Clase 2: Repaso de ecuaciones diferenciales ordinarias Definiciones Ejemplos 1) La ecuación diferencial como definición de un campo vectorial 2) Solución de ecuación homogénea 3) Solución de ecuación no homogénea Clase 3: Ecuaciones en diferencias Definiciones Ecuación en diferencias a partir de una ecuación diferencial: Ejemplo: Ecuación en diferencias hacia atrás de orden 2 Comparación entre solución discretizada y la solución de la ecuación diferencial discretizada T implícito vs T explícito Solución analítica de una ecuación en diferencias Primer ejemplo de solución analítica Segundo ejemplo de solución analítica: lambda imaginario Tercer ejemplo de solución analítica: Ceros que no tienen sentido Clase 4: Transformada de Laplace Definición: Transformada de Laplace Transformadas básicas transformada de Laplace Propiedades básicas transformada de Laplace Clases 5 y 6: Transformada Z Concepto de función muestreada Transformada Z Transformadas básicas Propiedades operacionales Transformada Z inversa Solución de ecuaciones en diferencias aplicando transformada Z en MatLab Solución mediante fracciones parciales Solución mediante la serie infinita de potencias Clases 7 y 8: Introducción a las funciones de transferencia Definición de la función de transferencia Conceptos claves Clases 9 y 10: Funciones de transferencia Retardos y orden relativo Reducción de orden Función de ponderación (Secuencia de ponderación) Discretización de la función de transferencia Clase 11: Introducción al espacio de estado Zona de pruebas Funciones adicionales para el curso

Clase 1: Presentación del curso

Clase 2: Repaso de ecuaciones diferenciales ordinarias

clear,clc

Definiciones

  1. Ecuación diferencial: Ecuación que contiene derivadas
  2. Ecuación diferenciales ordinarias: Aplicación de las ecuaciones diferenciales a sistemas donde los parámetros son concentrados (todas las propiedades del sistema se resumen a un punto, es decir, se minimizan las variables independientes necesarias). Ejemplo:
  3. Ecuaciones diferenciales parciales: Aplicación a sistemas con parámetros distribuidos (las propiedades del sistema requieren más de una variable para expresarse)
  4. Ecuaciones lineales: Se dice que una ecuación diferencial de n-ésimo orden es lineal si es lineal en . Dicho de otra forma, la ecuación diferencial de n-ésimo orden es lineal si tiene la forma .
  5. Ecuaciones lineales con coeficientes constantes: Se les conoce como LTI (Linear-Time-Invariant). Los coeficientes que acompañan a la variable dependiente no cambian con el tiempo, por tanto, son de la forma Existen métodos analíticos para resolver estas ecuaciones. El término tiene significado como la entrada del sistema.
  6. Problema de valor inicial: Es un problema de la forma
  7. Solución general de un problema de valor inicial: Se calcula la solución general como la suma de la solución de la ecuación complementaria homogénea () y una solución particular de la ecuación no homogénea (). De forma tal, la solución general viene dada por .
  8. Solución de la ecuación homogénea (): Se obtiene el polinomio característico y se resuelve para obtener los valores característicos. Debe lidiarse con los casos de valores característicos reales diferentes, complejos diferentes y raíces múltiples. El polinomio característico de es de la forma .
  9. Solución de la ecuación no homogénea: Se puede resolver aplicando el método de coeficientes indeterminados (método especial pero simple) o el método de variación de parámetros (método general pero complejo). Para ambos métodos consultar el libro de Dennis G. Zill & Warren S. Wright.

Ejemplos

1) La ecuación diferencial como definición de un campo vectorial

t=-3:0.5:12; y=-3:0.5:12; % define grid of values in t and y directions
[T,Y]=meshgrid(t,y); % creates 2d matrices
dT=ones(size(T)); % dt=1 for all points
dY=27-3*Y; % dy=(t^2-y)*dt: this is the ODE
N=sqrt(dT.^2+dY.^2); % magnitude of arrows
dT=dT./N; % normalize arrows to get all same length
dY=dY./N;
figure(1)
clf
quiver(T,Y,dT,dY) % draw arrows (t,y) --> (t+dt,y+dy)
axis equal
axis([-4 13 -4 13]) % repeat adjustments...
grid on
hold on
C1=8;
y=9-C1*exp(-3*t);
plot(t,y,'r','LineWidth',2);
hold off
xlabel('t')
ylabel('y(t)')

2) Solución de ecuación homogénea

s1.png
Comprobación de la solución en MatLab
syms y(x)
ode=diff(y,6)+4*diff(y,5)+7*diff(y,4)+6*diff(y,3)+2*diff(y,2)==0
ode(x) = 
ySol(x) = dsolve(ode)
ySol(x) = 

3) Solución de ecuación no homogénea

s2.png
Comprobación de la solución en MatLab
ode2=diff(y,2)+4*diff(y)+4*y==x+2*exp(-2*x)
ode2(x) = 
ySol2(x) = simplify(dsolve(ode2))
ySol2(x) = 
Solución con condiciones iniciales
y_0=2; y_1=3;
conds = [y(0)==y_0; y(1)==y_1];
ySol3(x)=dsolve(ode2,conds)
ySol3(x) = 

Clase 3: Ecuaciones en diferencias

clear;clc

Definiciones

  1. Ecuación en diferencias: Es una ecuación que contiene diferencias (Δ).
  2. Diferencias hacia adelante: ,
  3. Diferencias hacia atrás: ,
  4. Forma canónica de una ecuación en diferencias hacia adelante: Se obtiene luego de simplificar Δ y reemplazar T,
  5. Forma canónica de una ecuación en diferencias hacia atrás: Se obtiene luego de simplificar Δ y reemplazar T,

Ecuación en diferencias a partir de una ecuación diferencial:

Supongamos que deseamos discretizar la ecuación , para ello debemos notar que (diferencias hacia atrás) y por ende podemos reescribir la ecuación como , de forma tal, el problema original se convierte en

Ejemplo: Ecuación en diferencias hacia atrás de orden 2

Resolver la ecuación en diferencias dada por
Solucionamos aprovechando la relación de recurrencia:
Nota: Es posible utilizar más de un método de discretización para aproximar las derivada, por ejemplo el método de Runge-Kutta4 o el método de Heun.

Comparación entre solución discretizada y la solución de la ecuación diferencial discretizada

Supongamos que tenemos la ecuación , al discretizar con T llegamos a la expresión . Para resolver esta ecuación en el intervalo podemos implementar el siguiente código
T=0.21;
a=1;
y_0=-4;
time=0:T:10;
%%%% Solución continua
syms y(t)
ode = diff(y)+a*y-exp(-t)==0
ode(t) = 
cond = y(0)==y_0;
ySol(t)=dsolve(ode,cond)
ySol(t) = 
%%%% Solución discreta
yDis=t;
yCont=yDis;
yDis(1)=y_0;
for k=[1:length(time)-1]+1
yDis(k)=(1-a*T)*yDis(k-1)+T*exp(-T*(k-1));
end
%%%%%%% Comparación entre soluciones
figure(1)
clf
fplot(ySol,[0 10])
grid on
hold on
stem(time,vpa(yDis))
xlabel('t')
ylabel('y')
legend({'Continuous','Discrete'})

T implícito vs T explícito

Una vez se ha obtenido la ecuación en diferencias a partir de la ecuación diferencial es posible omitir el instante en el tiempo y concentrarse solo en el número de muestreo actual (T implícito). Para graficar adecuadamente es necesario recordar que .
s3.png

Solución analítica de una ecuación en diferencias

De la misma forma que se pueden solucionar las ecuaciones diferenciales LTI, es posible plantear un problema de autovalores para las ecuaciones en diferencias. Sea tal solución , reemplazamos en la ecuación en diferencias para obtener , ahora, introduciendo el cambio de variable tenemos que , lo cual se cumplirá para . Resta notar entonces que para encontrar las soluciones de la ecuación.

Primer ejemplo de solución analítica

s4.png
s5.png

Segundo ejemplo de solución analítica: lambda imaginario

s6.png

Tercer ejemplo de solución analítica: Ceros que no tienen sentido

s7.png

Clase 4: Transformada de Laplace

Definición: Transformada de Laplace

s8.png

Transformadas básicas transformada de Laplace

s9.png

Propiedades básicas transformada de Laplace

s10.png

Clases 5 y 6: Transformada Z

Concepto de función muestreada

A partir de una función cualquiera , definiremos la función muestreada con intervalo de muestreo T como se sigue
Debe ser claro que

Transformada Z

Aplicando la transformada de Laplace a una función muestreada obtenemos que
, ahora, haciendo el cambio de variable , llegamos a que
, adicionalmente, sabiendo que T actúa como una variable muda se sigue que podemos asumir y considerar

Transformadas básicas

Propiedades operacionales

Transformada Z inversa

Notando que la transformada Z de una función es una fracción propia, es posible calcular la transformada Z inversa mediante procedimientos:
  1. Método de la serie infinita de potencias: Se procede mediante división larga. Los coeficientes de la división corresponden con los valores de la función en cada instante de muestreo.
  2. Desarrollo en fracciones parciales: Se debe garantizar que cada fracción parcial sea una función propia. De forma tal, buscamos reconocer estructuras a partir de las cuales aplicar la tabla de transformadas básicas y propiedades operacionales.
  3. Integral de inversión: Es posible calcular la transformada inversa por definición, sin embargo, será necesario resolver una integral compleja por el teorema del residuo de Cauchy. Este método no se utiliza en clase.

Solución de ecuaciones en diferencias aplicando transformada Z en MatLab

Supongamos que queremos resolver la siguiente ecuación en diferencias sujeta a condiciones iniciales

Solución mediante fracciones parciales

Solución analítica
clear;clc
%y(k+3)+0.8*y(k+2)==0 % y(0)=1, y(1)=0, and y(2)=1.
syms y(k) z %se declara la función simbólica y(k) y la variable simbólica z
assume(k>=0 & in(k,'integer')) % se establece que k es entero mayor o igual a 0
f = y(k+3)+0.8*y(k+2)==0 % se declara la ecuación en diferencias
f = 
fZT = ztrans(f,k,z) %transformada z de la ecuación en diferencias, la variable k pasa a z
fZT = 
syms pZT %variable para resolver la ecuación
fZT = subs(fZT,ztrans(y(k),k,z),pZT) % se sustituyen las expresiones de Y(z) por la variable simbólica pZT
fZT = 
pZT = solve(fZT,pZT) % se soluciona la ecuación para pZT=Y(Z)
pZT = 
pZT = subs(pZT,[y(0) y(1) y(2)],[1 0 1]) % se sustituyen los valores de las condiciones iniciales para obtener la fracción Y(z)
pZT = 
pZT=partfrac(pZT) % esta línea de código ayuda a evidenciar la descomposición en fracciones parciales
pZT = 
ySol = iztrans(pZT,z,k) % se aplica la transformada inversa, la variable z pasa a k
ySol = 
ySol = simplify(ySol) % de ser posible se simplifica la expresión resultante, esta es la solución de la ecuación en diferencias
ySol = 
Gráfica de la solución analítica
kValues = 0:10; %instantes de muestreo
T=0.2;% intervalo de muestreo
ySolValues = subs(ySol,k,kValues); %evaluamos los valores de k en la solución
ySolValues = double(ySolValues); % pasamos los valores de simbólico a variable numérica
ySolValues = real(ySolValues); % capturamos la parte real de los valores
figure(1)
clf
stem(kValues*T,ySolValues) %gráfica de la función discretizada
title('Solution of equation')
xlabel('t')
ylabel('y(kT)')
grid on

Solución mediante la serie infinita de potencias

Para resolver la ecuación mediante la serie infinita de potencias debemos aplicar la transformada Z y llegar a la expresión racional . Para el caso del ejemplo que estamos resolviendo tenemos que . Podemos aplicar la división larga para obtener los primeros 11 valores de la función (equivalentes a los puntos de la gráfica anterior) mediante la función ldiv desarrollada por Tamer Melik. El primer argumento que recibe esta función son los coeficientes del numerados, luego los coeficientes del denominador y finalmente el número de valores de la función por obtener
yvals=ldiv([5,4,5],[5,4],11)
yvals = 1×11
1.0000 0 1.0000 -0.8000 0.6400 -0.5120 0.4096 -0.3277 0.2621 -0.2097 0.1678

Clases 7 y 8: Introducción a las funciones de transferencia

Definición de la función de transferencia

Cuando aplicamos la transformada de Laplace a un problema de valores iniciales no homogéneo
obtenemos una expresión de la forma
Adicionalmente, si la entrada fuera de la forma , llegaríamos a que
Donde es el polinomio característico de la ecuación diferencial homogénea en la variable s, es un polinomio generado a partir de las condiciones iniciales y es un polinomio generado a partir de las derivadas de la entrada (las condiciones iniciales de la entrada se asumen iguales a 0). De la última expresión que obtuvimos podemos observar que la solución de la ecuación diferencial no homogénea viene dada por una respuesta a las condiciones iniciales y una respuesta a la entrada . Es decir, la solución de la ecuación se compone de la suma de la solución a la ecuación asociada homogénea y una solución particular con condiciones iniciales nulas.
De la naturaleza de la transformada de Laplace se sigue que y que .
Para el caso discreto, de manera análoga, la solución mediante transformada Z de la ecuación en diferencias no homogénea con condiciones iniciales
nos lleva a la forma
Y de la naturaleza de la transformada Z se sigue que y que .
Se hace de particular relevancia, el caso en el que las condiciones iniciales son nulas puesto que la expresión para se torna de la forma
A la expresión se le conoce como función de transferencia del sistema de ecuaciones diferenciales / en diferencias. La función de transferencia es de particular relevancia para el área de sistemas dinámicos, donde podemos resignificar cada componente de la expresión anterior en términos de una planta/proceso/sistema (dado por ), un conjunto de señales de entrada que se aplican al sistema (), un conjunto de estados del sistema () y un conjunto de salidas del sistema (). El tema de los estados del sistema será abordado más adelante. Lo anterior, nos permite representar el anterior problema matemático de la forma
En este orden de ideas, la función de transferencia es una caraterización completa del sistema que nos permite determinar la salida del sistema para cualquier entrada que se le aplique. En términos matemáticos, esto puede verse al notar que . Es decir que si conocemos la función de transferencia del sistema y la entrada que se le aplica, podemos calcular la salida mediante transformada inversa o convolución.
En general, el concepto de función de transferencia también es aplicable a cualquier sistema en estado estacionario (sin variaciones) aunque las condiciones de dicho estado no sean nulas. Para ello, basta trabajar con las variables incrementales . Es decir, obtenemos el cambio que experimenta la salida del sistema al modificar la entrada en estado estacionario y luego adicionamos el valor de la salida en estado estacionario para obtener el comportamiento del sistema, tal y como se ejemplifica en el siguiente diagrama:

Conceptos claves

  1. Polos: Son los ceros del polinomio característico , por tanto, son los valores de para los cuales la función de transferencia tiende a infinito. Los polos determinan la estabilidad del sistema. Para el caso continuo, si todos los polos se encuentran en el semiplano izquierdo del plano s se sigue que el sistema será estable. Para el caso discreto, un sistema será estable si todos los polos se encuentran dentro del círculo unitario del plano z.
  2. Ceros finitos: Son los ceros del polinimio de la entrada , por tanto, son los valores de para los cuales la función de transferencia tiende a cero. Los ceros nos permiten identificar entradas que son anuladas por el sistema e intuir ciertos comportamientos del sistema, tal y como se verá más adelante.
  3. Orden: Es el grado de , dicho grado nos habla del orden de la ecuación diferencial asociada al sistema.
  4. Orden relativo: . El orden relativo nos habla sobre el retardo del sistema para el caso discreto. Este tema se abordará con más profundidad en la siguiente clase.
  5. Polos dominantes: Polos estables cercanos al eje imaginario (caso continuo). Polos estables cercanos al círculo unitario (caso continuo). Debido a dicha cercanía, estos polos son los que más determinan el comportamiento del sistema.
  6. Polos insignificantes: Polos alejados del polo más dominante. Se calcula que un polo ajelado más de 5 veces del polo dominante podría ser insignificante. Un polo alejado más de 10 veces del polo dominante se juzga insignificante. Los polos insignificantes aportan muy poco a la dinámica del sistema.
  7. Ecuación característica: .

Clases 9 y 10: Funciones de transferencia

Retardos y orden relativo

Las transformadas para una señal continua con retardo son de la forma
Por tanto, un problema como el siguiente
conduce a la solución
mientras que un problema como
conduce a la solución
Por tanto, la presencia de exponenciales, en el caso continuo, o la presencia de polos en , en el caso discreto, nos alertan sobre la presencia de retardos en el sistema. Para el caso continuo los retardos son bastante intuitivos mientras que el caso discreto requiere un poco más de atención. En primer lugar, ya no podremos interpretar inmediatamente que el denominador de la función de transferencia corresponde con el polinomio característico de la ecuación en diferencias asociada al sistema. Para determinar el polinomio característico tendremos que factorizar, de ser posible, el denominador, hasta que obtengamos una expresión de la forma
Ecuación en diferencias a partir de la función de transferencia
Partamos de un sistema con la función de transferencia , dado que cuando trabajamos con funciones de transferencia asumimos que las condiciones iniciales son iguales a 0, se sigue que la ecuación en diferencias debe ser de la forma . Ahora, hagamos y solucionemos este sistema empleando MatLab
clear;clc
G = tf([1 0],[1 0 0.25],1)
G = z ---------- z^2 + 0.25 Sample time: 1 seconds Discrete-time transfer function.
figure(1)
clf
step(G)
xlim([0 10])
ylim([0 1.5])
Sin embargo, debemos notar que MatLab toma un valor distinto de 0 para . Para entender porqué sucede esto, podemos modificar la función de transferencia para obtener la ecuación en diferencias hacia atrás
En este caso, podemos resolver , que coincide con la gráfica entregada por MatLab.
El orden relativo revisitado
Del ejemplo anterior podemos empezar a intuir el efecto del orden relativo, para el caso discreto, en el comportamiento del sistema. De hecho, el orden relativo de la función de transferencia es equivalente al retardo que presenta el sistema. Esto puede comprobarse cuando determinamos la ecuación en diferencias hacia atrás. Por ejemplo:
Notemos que el orden relativo de esta ecuación en diferencias es 0 y que , que coincide con la solución de MatLab
G = tf([1 0 0],[1 0 0.25],1)
G = z^2 ---------- z^2 + 0.25 Sample time: 1 seconds Discrete-time transfer function.
figure(2)
clf
step(G)
xlim([0 10])
ylim([0 1.5])

Reducción de orden

Ejemplos de reducción de orden

Función de ponderación (Secuencia de ponderación)

Discretización de la función de transferencia

Clase 11: Introducción al espacio de estado

Zona de pruebas

clear;clc
x=[-4:0.001:4]; y=x; x1=x;
y1=zeros(1,length(x));
z=exp(y1+i*x1); th1=abs(z); rho1=angle(z);
figure(1), plot(y1,x1)
figure(2)
clf
polar(rho1,th1)
figure(1)
clf
Gd = tf([1 0],[1 0 -0.25],'Ts',1); step(Gd); axis([0,6,0,3])
clear;clc;close all
syms s
A=[0 1;-4 -2];
G=inv(s*eye(2)-A)
G = 
simplify([1 0]*G*[0 1]')
ans = 

Funciones adicionales para el curso

function funresult=ldiv(a,b,N)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Function (ldiv) : calculate inverse Z-transform by long division
% Author : Tamer mohamed samy abdelazim Mellik
% Contact information :
%Department of Electrical & Computer Engineering,
%University of Calgary,
%2500 University Drive N.W. ,
%Calgary, AB T2N 1N4 ,
%Canada .
% email :abdelasi@enel.ucalgary.ca
% email : tabdelaz@ucalgary.ca
% Webpage : http://www.enel.ucalgary.ca/~abdelasi/
% Date : 2-5-2002
% Version : 1.0.0
%Example
% This function like deconv but it help if the numerator less or equal degree of denominator
% if you have this function (It must arranged in terms of minus power of Z):
% 1
% G(z)= -----------------
% -1 -2
% ( 5 - Z - 3 Z )
% and you want to calculate long division or inverse Z transform :
% The numerator is a=[1] and the denominator is b= [5 -1 -3 ]
% call the function ldiv(a,b) to get the funresult 20 items (default)
% another example :
% -2 -3
% ( 5 - 3 Z + 4 Z )
% G(z)-----------------
% -1 -2
% (5 - Z - 3 Z )
% a=[5 0 -3 4] , b= [5 -1 -3 ] and you want the funresult 100 terms !
% ldiv(a,b,100)
% Note : The author doesn't have any responsibility for any harm caused by the use of this file
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%a numerator
%b denominator
%default order of the filter == 20
funresult=[];
if nargin < 3
if nargin > 1
N=20;
else
disp('Usage: M = ldiv(a,b,N)')
disp('a:numerator , b denominator and N is the order of the resultant filter')
return
end
end
if size(a) < 1
disp('Error: numerator must at least have one element not empty')
return
end
if size(b) < 1
disp('Error: denominator must at least have one element not empty')
return
end
if b(1)==0
disp('Error: The first element of denominator must have nonzero value')
return
end
if size(b) < 2
funresult=a./b;
for i =length(funresult)+1:N
funresult(i)=0;
end
return
end
for i = length(a)+1:N
a(i)=0;
end
for i = 1 : N
funresult(i)=a(1)/b(1);
if length(a)>1
for k= 2:length(b)
if k > length(a)
a(k)=0;
end
a(k)=a(k)-funresult(length(funresult))*b(k);
end
for i = 1:length(a)-1
a(i)=a(i+1);
end
a=a(1:length(a)-1);
end
end
end